# -*- coding: utf-8 -*-
"""
@Time ： 2022/7/21 10:47
@Auth ： Mr. William 1052949192
@Company ：特斯汀学院 @testingedu.com.cn
@Function ：请输入模块功能描述
"""
# 选择排序
import re

# height = [155, 187, 172, 160, 163, 166, 173, 182, 165, 159]
# # 外层循环代表轮次
# l = len(height)
# i = 0
# while i < l - 1:
#     # 内层循环，选择最大的
#     # 以第一个人为基准，记录下标
#     j = 1
#     tmp = 0
#     while j < l - i:
#         if height[tmp] < height[j]:
#             # 记录最大值下标
#             tmp = j
#         j = j + 1
#     # # 把最高的放到最后
#     t = height[tmp]
#     height[tmp] = height[l - i - 1]
#     height[l - i - 1] = t
#     i += 1
#     # 交换
#     # height[tmp], height[len(height) - i - 1] = height[len(height) - i - 1], height[tmp]
#
# print(height)
#
# # 冒泡排序
# height = [190, 187, 172, 160, 163, 166, 173, 182, 165, 159]
#
# # 外层循环：控制比较的轮数
# i = 0
# # 要不要-1？需要-1，因为最后一轮只剩一个数，不用比较
# while i < len(height) - 1:
#     # j从几开始？和前一个比，就从1开始，如果和后一个比就从0开始
#     j = 0
#     # 内存循环：每一轮的比较
#     # 注意：-i可以提升效率，减少比较的次数。因为每一轮比较后，已经冒出来的元素是不用再比较的
#     # 而这个冒出来的元素都放到了列表的最后
#     while j < len(height) - 1 - i:
#         # 和前一个比较，如果比后一个大就交换
#         if height[j] > height[j + 1]:
#             # 前一个和后一个交换
#             height[j], height[j + 1] = height[j + 1], height[j]
#
#         # 循环控制条件
#         j += 1
#
#     # 循环控制条件
#     i += 1
#
# print(height)

# # 字符串：替换最后一个
# s = 'willroytufeizhangxinwillroytufeizhangxinwillroytufeizhangxinwillroytufeizhangxin'
# old = 'will'
# new = '卡卡'
# # 先反转字符串
# r_s = s[::-1]
# print(r_s)
# # 再替换第一个反转后的子串
# r_s = r_s.replace(old[::-1],new[::-1],1)
# print(r_s)
# # 再反转回来
# r_s = r_s[::-1]
# print(r_s)

# 字符串替换第n个
s = 'willroytufeizhangxinwillroytufeizhangxinwillroytufeizhangxinwillroytufeizhangxin'
n = 1
# 先替换前n个
r_s = s.replace('will','卡卡',n)
# 再把前n-1个替换回去
r_s = r_s.replace('卡卡','will',n-1)
print(r_s)

# 正则提取订单号和金额
s = '订单号：  202207192221383736  |    付款金额（元）：  10.00 元'
# 分析，订单号是连续18位数字，金额是不定长数字.两位数字；两个条件可以用 |
res = re.findall(r'[0-9]{18}|[0-9]+\.\d{2}',s)
print(res)
